home *** CD-ROM | disk | FTP | other *** search
- /*
- * Arexx Program created by Cary Driscoll
- *
- * $VER: Magic Regions 1.1 (4.6.00)
- */
-
- OPTIONS RESULTS
-
- /* Find out what version of ImageFX is being used */
- GetVersion
- PARSE VAR RESULT name ifx_version .
-
- /* Quit if the program is older than IFX 3.0 */
- IF ifx_version < 3 THEN DO
- RequestNotify "Sorry, IFX "||ifx_version||" is too old."
- EXIT
- END
-
- GetPreview
- PARSE VAR RESULT prev_name
- If prev_name = "SuperAmiga" THEN DO
- RequestNotify "Sorry, you need to use a Windowed preview."
- EXIT
- END
-
- GetMain
- IF rc ~= 0 THEN DO
- RequestNotify "Sorry, you need to open a buffer first."
- EXIT
- END
-
- /* Retrieve previous values from the environment */
- closeness = GETCLIP('IFX_M_R_Closeness')
- newr = GETCLIP('IFX_M_R_NewR')
- newg = GETCLIP('IFX_M_R_NewG')
- newb = GETCLIP('IFX_M_R_NewB')
- checking = GETCLIP('IFX_M_R_Checking')
- inverting = GETCLIP('IFX_M_R_Inverting')
-
- /* Defaults if empty values are returned from the environment */
- IF closeness = '' THEN closeness = 30
- IF newr = '' THEN newr = 0
- IF newg = '' THEN newg = 0
- IF newb = '' THEN newb = 0
- IF checking = '' THEN checking = 1
- IF inverting = '' THEN inverting = 0
-
- GetPalette '-1'
- PARSE VAR RESULT r g b
-
- /* Prepare gadgets for the complex requester */
- Gadget.1 = 'SLIDER 100 8 100 10 "Red" IN='||r||' 0 255 LV=%-3ld'
- Gadget.2 = 'SLIDER 100 18 100 10 "Green" IN='||g||' 0 255 LV=%-3ld'
- Gadget.3 = 'SLIDER 100 28 100 10 "Blue" IN='||b||' 0 255 LV=%-3ld'
- Gadget.4 = 'SLIDER 100 48 100 10 "New Red" IN='||newr||' 0 255 LV=%-3ld'
- Gadget.5 = 'SLIDER 100 58 100 10 "New Green" IN='||newg||' 0 255 LV=%-3ld'
- Gadget.6 = 'SLIDER 100 68 100 10 "New Blue" IN='||newb||' 0 255 LV=%-3ld'
- Gadget.7 = 'SLIDER 100 88 100 10 "Closeness" IN='||closeness||' 0 255 LV=%-3ld'
- Gadget.8 = 'CHECK 35 108 10 10 "Just change the colors?" IN='||checking
- Gadget.9 = 'CHECK 35 119 10 10 "Create inverted region?" IN='||inverting
- Gadget.10 = 'END'
-
- /* Enable complex requester using defined gadgets */
- NewComplexRequest '"Magic Regions"' Gadget 250 141
- IF rc ~= 0 THEN EXIT
-
- /* Get results from the complex requester and store them in the variables */
- r = result.1
- g = result.2
- b = result.3
- newr = result.4
- newg = result.5
- newb = result.6
- closeness = result.7
- checking = result.8
- inverting = result.9
-
- /* Store variables in the environment for next use of this script */
- CALL SETCLIP('IFX_M_R_Closeness',closeness)
- CALL SETCLIP('IFX_M_R_NewR',newr)
- CALL SETCLIP('IFX_M_R_NewG',newg)
- CALL SETCLIP('IFX_M_R_NewB',newb)
- CALL SETCLIP('IFX_M_R_Checking',checking)
- CALL SETCLIP('IFX_M_R_Inverting',inverting)
-
- IF checking THEN DO
- Hook ChangeColor r g b newr newg newb closeness
- EXIT
- END
-
- Buffer2Swap
- Swap
- Hook ChangeColor r g b 0 0 0 closeness
- CreateLayer FromSwap
- Hook ChangeColor r g b 255 255 255 closeness
- Negative
- LayerBlend 255
- LayerMode XOR
- FlattenLayers
- IF inverting THEN Negative
- ColorSpace RGB
- Palette 8
- GetPalette 0
- PARSE VAR RESULT zeror zerog zerob
- SetPalette 0 255 255 255
- GetPalette 1
- PARSE VAR RESULT oner oneg oneb
- SetPalette 1 0 0 0
- LockRange 0 ON
- SetRender Foreign
- Render Mode LORES NOLACE
- Render Monitor DEFAULT
- Render Colors 2
- Render Dither 0 0 0
- Render Go
- SaveRenderedAs ILBM "RAM:T/temp_region"
- LockRange 0 OFF
- SetPalette 0 zeror zerog zerob
- SetPalette 1 oner oneg oneb
- Palette 1
- Swap
- KillSwap
- Region Free
- LoadMask "RAM:T/temp_region"
- ADDRESS COMMAND 'Delete RAM:T/temp_region' QUIET
-